/******************************************************************/
/*                                                                */
/*  Winpooch : Windows Watchdog                                   */
/*  Copyright (C) 2004-2005  Benoit Blanchon                      */
/*                                                                */
/*  This program is free software; you can redistribute it        */
/*  and/or modify it under the terms of the GNU General Public    */
/*  License as published by the Free Software Foundation; either  */
/*  version 2 of the License, or (at your option) any later       */
/*  version.                                                      */
/*                                                                */
/*  This program is distributed in the hope that it will be       */
/*  useful, but WITHOUT ANY WARRANTY; without even the implied    */
/*  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR       */
/*  PURPOSE.  See the GNU General Public License for more         */
/*  details.                                                      */
/*                                                                */
/*  You should have received a copy of the GNU General Public     */
/*  License along with this program; if not, write to the Free    */
/*  Software Foundation, Inc.,                                    */
/*  675 Mass Ave, Cambridge, MA 02139, USA.                       */
/*                                                                */
/******************************************************************/

#ifndef _CONFIG_H
#define _CONFIG_H

#include <windows.h>

typedef enum {
  CFGINT_CHECK_FOR_UPDATES,
  CFGINT_ENABLE_POOCHY_PICTURE,
  CFGINT_ENABLE_SOUND,
  CFGINT_MAX_LOG_SIZE,
  _CFGINT_COUNT //< This has to stay last
} CONFIG_INTEGER_ID ;

typedef enum {
  CFGSTR_LANGUAGE,
  _CFGSTR_COUNT //< This has to stay last
} CONFIG_STRING_ID ;
  

/**
 * Initialize module and load config.
 */
BOOL Config_Init () ;

/**
 * Save config and uninitialize module.
 */
BOOL Config_Uninit () ;

/**
 * Save configuration.
 */
BOOL Config_Save () ;

/**
 * Get the value of a configuration integer.
 */
int Config_GetInteger (CONFIG_INTEGER_ID) ;

/**
 * Set the value of a configuration integer.
 */
void Config_SetInteger (CONFIG_INTEGER_ID, int) ;

/**
 * Get the value of a configuration string.
 */
LPCTSTR Config_GetString (CONFIG_STRING_ID) ;

/**
 * Set the value of a configuration string.
 */
void Config_SetString (CONFIG_STRING_ID, LPCTSTR) ;

#endif
